package com.ksd.modules.channel.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ksd.common.po.BatchIdsPO;
import com.ksd.commons.IBaseService;
import com.ksd.modules.channel.entity.AdminChannel;
import com.ksd.modules.channel.po.AdminChannelSavePO;
import com.ksd.modules.channel.po.AdminChannelSearchPO;
import com.ksd.modules.channel.vo.AdminChannelVo;

public interface IAdminChannelService extends IBaseService<AdminChannel> {


    /**
     * 查询栏目信息
      * @param adminChannelSearchPO
     * @return
     */
    Page<AdminChannelVo> findAdminChannels(AdminChannelSearchPO adminChannelSearchPO);

    /**
     * 查询栏目回收站信息
     * @param adminChannelSearchPO
     * @return
     */
    Page<AdminChannelVo> findAdminChannelsRecyle(AdminChannelSearchPO adminChannelSearchPO);

    /**
     * 保存栏目和修改栏目
     * @param adminChannelSavePO
     * @return
     */
    AdminChannelVo saveUpdateAdminChannel(AdminChannelSavePO adminChannelSavePO);

    /**
     * 获取栏目明细
     * @param id
     * @return
     */
    AdminChannelVo getAdminChannelById(Long id);

    /**
     * 单个逻辑删除
     * @param id
     * @return
     */
    Boolean deleteAdminChannelById(Long id);

    /**
     * 单个恢复
     * @param id
     * @return
     */
    Boolean recoverByIdAdminChannel(Long id);

    /**
     * 单个物理删除
     * @return
     */
    Boolean removeAdminChannelById(Long id);

    /**
     * 批量逻辑删除
     * @param batchIdsPO
     * @return
     */
    Boolean bacthDeletesAdminChannel(BatchIdsPO batchIdsPO);

    /**
     * 批量恢复
     * @param batchIdsPO
     * @return
     */
    Boolean batchRecoversAdminChannel(BatchIdsPO batchIdsPO);

    /**
     * 批量物理删除
     * @param batchIdsPO
     * @return
     */
    Boolean batchRemovesAdminChannel(BatchIdsPO batchIdsPO);


    /**
     * 覆盖方法
     * @param id
     * @param column
     * @param value
     * @return
     */
    boolean updateStatus(Long id,String column,Integer value);

    /**
     * 覆盖方法
     * @param id
     * @param column
     * @param value
     * @return
     */
    boolean updateStatusStr(Long id,String column,String value);
}
